約 1,905,717 件
https://w.atwiki.jp/dotcom/pages/94.html
日付を処理したい時はCalendar型ですよオクサマ。 Calenderじゃなくてよ。 宣言しよう今日の日付を取ってくるには? 月は0から始まる。 任意の日付をセット 曜日がほしい時(数字) 曜日がほしい時(日本語) 日付を計算しよう 宣言しよう calって名前の変数にしてみます。 private Calendar cal; これが必要よ。 import java.util.Calendar; 今日の日付を取ってくるには? cal = Calendar.getInstance(); これでおっけー。 2007/03/05に以下のを実行すると。。 System.out.println("年:" + cal.get(Calendar.YEAR)); System.out.println("月:" + cal.get(Calendar.MONTH)); System.out.println("日:" + cal.get(Calendar.DATE)); こんな結果に。 年:2007 月:2 日:5 おりょー。 2月になっちゃった。 月は0から始まる。 0から11まで。 任意の日付をセット cal.set(2007,3,5); こうすると System.out.println("年:" + cal.get(Calendar.YEAR)); System.out.println("月:" + cal.get(Calendar.MONTH)); System.out.println("日:" + cal.get(Calendar.DATE)); こんな結果に。 年:2007 月:3 日:5 お願いしたとおりに設定されるですよ。 曜日がほしい時(数字) これが必要よ。 import java.util.Date; 3月の曜日ー! cal.set(2007,3,5); cal.get(Calendar.DAY_OF_WEEK)); ってやると System.out.println( "2007/03/05の曜日:" + cal.get(Calendar.DAY_OF_WEEK)); 数字。。。 日本語にしちゃいましょーそうしましょー 曜日がほしい時(日本語) 月火水・・・って変換してくれるの。 これが必要よ。 import java.text.SimpleDateFormat; import java.util.Locale; 2007/03/05の曜日を求めてみるわ。 cal.set(2007,3,5); SimpleDateFormat weeks = new SimpleDateFormat ("EEE",Locale.JAPANESE); Date currentTime = cal.getTime(); weeks.format(currentTime); こんな風にすると。。 System.out.println("2007/03/05の曜日:" + weeks.format(currentTime)); 結果は 2007/03/05の曜日:木 日付を計算しよう addを使うですよ。 cal.getTime()が 2007/03/05の時 1ヶ月前 cal.add(Calendar.MONTH,-1); →2007/02/05 1ヶ月後 cal.add(Calendar.MONTH,1); →2007/04/05 10日前 cal.add(Calendar.DATE,-10); →2007/02/23 1日後 cal.add(Calendar.DATE,1); →2007/03/06 年も同じ。Calendar.YEARで指定すればいいわけよ。
https://w.atwiki.jp/yo-kichi/pages/89.html
プログラム言語とは Javaが実行環境に依存しない理由 ソフトウェアを作るのがプログラミング言語です。 これには、C、C++、C#言語やJava言語があります。 Q.プログラミング言語とはどんなものでしょう?--プログラミング言語の必要性は?-- プログラミング言語は、コンピュータにさせる処理を人間にとってわかりやすく記述できる言語です。 なぜ人間にわかりやすく記述できるプログラミング言語が必要かというと、CPUはすべて機械語で動いていて、その機械語は0,1の羅列で 記述されていて、普通の人間がその意味を理解したりするのは難しいし、できたとしても非効率的です。 また、機械語はCPUごとに違いがあるため、CPUごとの扱える必要があります。 では、どうやってプログラミング言語でコンピュータに命令を与えているのかというと、それはコンパイルという行為を行うことによってプログラミング言語 で記述されたファイル(ソースコード)を機械語に翻訳することができるからです。 で、コンパイルすると書きましたが、これはコンパイラというソフトウェアによっておこなわれます。 どういうことか実際に図をかいてみてみましょう ここでは例としてC言語を取り扱います。 [ここでC言語の図を書く] C言語は、OSがwindowsの場合は、コンパイルすることによってexeファイルが生成されます。これは、機械語で記述実行形式のファイルです。 これを実行すると、コンピュータがソースコードで意図したような動作をします。 ただし、OSやCPUに対してコンパイルするため特定のOS、CPUでしか動きません。 次に、Java言語の場合について、同じように説明しましょう。 [ここでJava言語の図を書く] Java言語では、コンパイラによってコンパイルした後に中間言語(バイトコード)が生成され、その中間言語をJVM(JavaVirtualMachine)が機械語に翻訳して、 CPUへ命令をだして、結果ソフトウェアが実行される。 Java言語でのミソはこのJVMと中間言語です。 JVMはシステムのアーキテクチャごとに用意されていて、例えば、Windows用のJVMやLinux用のJVM、はたまた携帯電話のOS用のJVMなどもあります。 ソースコードのコンパイル後に生成される中間言語と、それぞれのJVMがあればソフトウェアが実行できます。 この二つを見比べた場合、C言語もLinux用などにコンパイルすれば実行することが可能です。しかしC言語はOS固有の機能を直接使うのでコンパイルのみでなくソースコードも変更する必要があります。 Java言語は一度コンパイルした後は、中間言語と、Windows用のJVMやLinux用のJVMを用意するだけで、どの環境(携帯電話の上でも動く)でも動かすことができる Javaはオブジェクト指向プログラミングであり現在の主流の考えでプログラミングすることができます。またメモリ管理や例外処理機構があるのでつまずきにくいと思います。 まとめ JVMが様々なOSごとに用意されていれば、中間言語とJVMでどんな環境でも動くので汎用性が高いプログラミング言語。 いままでプログラミングしたことない人にとっても、比較的取っつきやすい言語といえる。 簡単なイメージとしての図↓
https://w.atwiki.jp/kanekotky/pages/14.html
Testing TestNG Testing EJB3 apps with TestNG Announcing TestNG 4.5 その他テスト ConTestを使用したマルチスレッド・ユニットのテスト ActiveMQ 4.0 release How to tune Apache ActiveMQ Tangosol http //www.tangosol.com/html/index.shtml クラスタ化アプリケーションのセッション管理 言語 Javaのオブジェクトサイズの測り方、sizeof 浅煎り珈琲 Java アプリケーション入門 PDF Javaアプリケーションから動的にPDFファイルを生成するiText Spring PetStore SpringPetstore JPetstore OrderForm must be Serializable 自動化 JavaOne Tokyo 2005 - 自動化、心掛けてますか? 貴重な時間は大切に DI Container DIxAOPコンテナ「Seasar2とSpring」 先進DIコンテナ「Apache Geronimo」、「HiveMind」を試す Using Dependency Injection in Java EE 5.0 Spring AOPサンプルアプリでAOPを理解する AOP aspectj project JBossAOP アスペクト指向のバリエーション解説 2004年末~2005年夏までの連載。少し古いのだが、AspectJ、JBossAOP、AspectWerkzについて解説。 AOPの理想と現実 java.lang.instrument java.lang.instrument JTA Javaの理論と実践 JTSを理解する -- 見えない魔法 Mustang jrunscriptビルトインオブジェクト一覧 Image I/O Improvements in Mustang JOnAS ObjectWeb Conference 2006 - ObjectWeb、次期JOnASでは自律機能を強化 ライブラリ Joda Time - Java date and time API性能等も考慮された日付処理ライブラリ JGraphJGraph is the most powerful, easy-to-use, feature-rich and standards-compliant open source graph component available for Java Tools IBM Thread and Monitor Dump Analyzer for Java Technology 他 Java WebSphere についてのいろいろ EHCache Hibernateでインテグレーション層のDAOデザインを考える MD5 cryptによるLinuxでのJavaアプリの保護 Gavin Kingが答えた「EJB 3.0がHibernate + Springより優れていると思う点」 Strutsで作るセキュアWebアプリケーション 【Jakarta/Apacheウォッチ】第25回 リリース間近!アーキテクチャを一新したStruts 1.3 Javaクラスの居場所 this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); BEA WebLogic Server 9 sets another SPECjAppServer2004 top mark The new features in Servlet 2.5 worthwhile? Tomcat Performance Higher on Linux Tapestry 4.0 Released Unit Testing Serialization Evolution Use EJB3 Persistence with Spring Java/J2EE Requirement Coverage Tool - JRequire V1.1 released Hibernate 3.1.1 released BEA to Open Source its Kodo Java Persistence APIs FIT plug-in for Maven released A New Java Persistence API for Berkeley DB Using EJB 3.0 outside the container AOP@Work AOP myths and realities published TrackIt 1.0.0, web-based project tracking tool, released Sun、JSR 292を提出 - Java仮想マシンレベルで動的な型を提案、他 GroovyによるRuby on Railsライクなフレームワーク - Grails 0.1公開 入力値検証用フレームワーク - Commons Validator 1.3.0、新バリデータ追加も Jakarta Commons IO Package 1.2 - ディレクトリごとコピー新機能も Configuration Management in Java EE Applications Using Subversion Strecks Strecks is a set of extensions to the Struts web development framework aimed at Java 5 users. The aim of Strecks is to enhance the capability of Struts in terms of productivity and maintainability. Strecks makes use of Java 5 language features, in particular JSR-175 annotations, to simplify the programming model for Struts applications. Javapedia Wicket -XX +HeapDumpOnOutOfMemoryError Javaバグに投票を Java例文集 for バグレポート JNIEasy
https://w.atwiki.jp/javaapl/pages/16.html
ウェブ(クライアント側) ウェブブラウザでJavaアプレットを実行する技術は、広く使われている。 Javaアプレットは、ブラウザがウェブページ内でアニメーションの表示やマウスによるインタラクティブな操作を可能とする技術である。 簡単でインタラクティブなアニメーション用には、JavaアプレットよりもAdobe Flash を採用する事例が多い。 この分野においては、最近では Ajax も普及しつつある。 ウェブ(サーバ側) [編集] 現在、ウェブのサーバ側において、Java技術 (Java EE) は広く使われている。 多くのウェブサイトが、Javaサーブレット (Java Servlet) や JSP(JavaServer Pages)などの Java EE 技術を使って動的にページを生成するウェブを構築している。
https://w.atwiki.jp/java_pro/pages/30.html
import java.io.*; public class EvenNumber { public static void main(String[] args){ for (int i = 2; i = 100; i = i + 2){ System.out.println(i); } } }
https://w.atwiki.jp/cappu/pages/47.html
EMF Java Serialize //ファイルに保存 SampleObj obj = new SampleObj();//impl Serializable ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("serialized_object")); out.writeObject(obj); out.close(); //ファイルから復元 ObjectInputStream in = new ObjectInputStream(new FileInputStream("serialized_object")); SampleObj obj = (SampleObj) in.readObject(); in.close();
https://w.atwiki.jp/java_pro/pages/29.html
import java.io.*; public class CountNumber { public static void main(String[] args){ for (int i = 1; i = 100; i++){ System.out.println(i); } } }
https://w.atwiki.jp/cappu/pages/26.html
Eclipse Tips Java クラス検索 Ctrl+Shift+T リソースファイル検索 Ctrl+Shift+R Eclipse起動オプション一覧 Running Eclipse eclipse -vmargs -Xmx memory size -data workspacePath ワークスペース指定 -nl locale Example values "en_US" and "fr_FR_EURO" -consolelog クラス検索 Ctrl+Shift+T リソースファイル検索 Ctrl+Shift+R VM引数 メモリ使用領域 -Xms40m -Xmx256m Permanent Space 初期値1MB -XX PermSize 2m Permanent Space 最大値64MB -XX MaxPermSize 128m
https://w.atwiki.jp/java_pro/pages/41.html
public class NamedCircle extends Circle{ String name; public static void main(String[] args){ NamedCircle nc = new NamedCircle(); nc.name = "java"; nc.setRadius(12); System.out.println(nc.name); System.out.println(nc.toString()); } }
https://w.atwiki.jp/chapati4it/pages/512.html
Javaで日付・時刻を扱う場合、大雑把に以下の3つのクラスを組み合わせて使います。 日付・時刻を扱うクラス「java.util.Date」 カレンダークラス「java.util.Calendar」 文字列との変換クラス「java.text.SimpleDateFormat」 ■目次 システム時刻を取得 システム時刻を文字列に変換 文字列から時刻(Date型)に変換 カレンダークラスを取得 + カレンダークラスの内容を出力 カレンダークラスで日付の計算 カレンダークラスとDate型の変換 文字列の日付の3ヶ月後を計算して文字列の日付に戻すサンプル 日付の比較(Date型同士) ideoneafter関数 before関数 compareTo関数 Date型が内部で扱うlong値を使った比較 文字列の日付が実際に存在する日付か確認する システム時刻を取得 // システム時刻を取得(現在時刻が 2013/11/22 01 01 51.929 の場合) Date date = new Date(); // システム時刻を出力してみる System.out.println(date.getTime()); // 結果 - 1385049711929 System.out.println(date); // 結果 - Fri Nov 22 01 01 51 JST 2013 Javaでシステム時刻(PCに設定されている時刻)を取得するには、Dateクラスを新しく作るだけでOKです。ただし、Dateクラスは日時を内部でlongの整数で扱うため、そのままでは人間には理解できず、Dateクラスをそのまま文字列に変換すると、日本人にはあまり馴染みのない形式で出力されます。 システム時刻を文字列に変換 // システム日付を取得 Date date = new Date(); // 変換クラスを作成 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh mm ss.SSS"); // Date型から文字列に変換 String str = sdf.format(date); System.out.println(str); // 結果 - 2013/11/22 01 01 51.929 Dateクラスを日本人に馴染みのある形式の文字列にするには、SimpleDateFormatクラスのformat関数を使います。SimpleDateFormatクラスを作成する際のパラメータに、上記のようなパラメータを渡すことで変換する書式を指定できます。書式のパラメータに「yyyyMMdd」なら「20131122」に変換されます。 テキストファイルや画面に時刻を表示する際にも文字列への変換は必要になります。 文字列から時刻(Date型)に変換 // 日付文字列(yyyy/MM/dd形式) String str = "2013/11/22"; // 変換クラスを作成 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); // 文字列からDate型に変換 Date date = sdf.parse(str); // 変換結果を出力してみる System.out.println(date.getTime()); // 結果 - 1385046000000 System.out.println(date); // 結果 - Fri Nov 22 00 00 00 JST 2013 文字列からDate型に変換するには、SimpleDateFormatクラスのparse関数を使います。日時の比較や、3日後や1ヶ月後を求めるには文字列のままではやりにくいので変換も必要になります。 カレンダークラスを取得 + カレンダークラスの内容を出力 // カレンダークラスを取得 Calendar cal = Calendar.getInstance(); // カレンダークラスの内容を出力してみよう(現在時刻が 2013/11/22 01 01 51.929 の場合) // 年 結果 - 2013 System.out.println(cal.get(Calendar.YEAR)); // 月 結果 - 10 System.out.println(cal.get(Calendar.MONTH)); // 日 結果 - 22 System.out.println(cal.get(Calendar.DAY_OF_MONTH)); // 時 結果 - 1 System.out.println(cal.get(Calendar.HOUR_OF_DAY)); // 分 結果 - 1 System.out.println(cal.get(Calendar.MINUTE)); // 秒 結果 - 51 System.out.println(cal.get(Calendar.SECOND)); // ミリ秒 結果 - 929 System.out.println(cal.get(Calendar.MILLISECOND)); カレンダークラスはDate型と違って「new Calendar()」とはしません。「Calendar.getInstance()」でカレンダークラスを作成します。Date型と同じように、作成した時点でシステム時刻が設定されています。 カレンダークラスは年・月・日・時・分・秒・ミリ秒などを上記のように「cal.get(Calendar.YEAR)」とすることで個別に取得できるのが特徴です。この時注意が必要なのが「月」で、月はなぜか1月なら 0、2月なら 1、のように実際の月より1少ない数字が取得できます。 カレンダークラスで日付の計算 // 3年後の計算 cal.add(Calendar.YEAR, 3); // 3年前の計算 cal.add(Calendar.YEAR, -3); // 3ヶ月後の計算 cal.add(Calendar.MONTH, 3); // 3ヶ月前の計算 cal.add(Calendar.MONTH, -3); // 3日後の計算 cal.add(Calendar.DAY_OF_MONTH, 3); // 3日前の計算 cal.add(Calendar.DAY_OF_MONTH, -3); // 3時間後の計算 cal.add(Calendar.HOUR_OF_DAY, 3); // 3時間前の計算 cal.add(Calendar.HOUR_OF_DAY, -3); // 3分後の計算 cal.add(Calendar.MINUTE, 3); // 3分前の計算 cal.add(Calendar.MINUTE, -3); // 3秒後の計算 cal.add(Calendar.SECOND, 3); // 3秒前の計算 cal.add(Calendar.SECOND, -3); カレンダークラスのもう一つの特徴は、3日後や3日前といった日付の計算が簡単にできることです。add関数に 3 を入れれば3日後や3ヶ月後、-3なら3日前や3ヶ月前の計算ができます。 カレンダークラスとDate型の変換 // カレンダークラスからDate型に変換 Date date = cal.getTime(); // Date型の値をカレンダークラスに設定 cal.setTime(date); カレンダークラスとDate型のやりとりは、getTime、setTime関数を使うだけでとても簡単に行えます。 文字列の日付の3ヶ月後を計算して文字列の日付に戻すサンプル import java.text.*; import java.util.*; public class DateTimeSample { public static void main(String[] args) throws ParseException { // 文字列の日付 String str = "2013/11/22"; // フォーマッタを作成 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); // 文字列の日付からDate型に変換 Date date = sdf.parse(str); // カレンダークラス作成 Calendar cal = Calendar.getInstance(); // カレンダークラスにDateの値を設定 cal.setTime(date); // 3ヶ月後を計算 cal.add(Calendar.MONTH, 3); // カレンダークラスからDate型を取得 date = cal.getTime(); // Date型から文字列の日付に変換 String str2 = sdf.format(date); // 変換結果を出力 結果 - 2014/02/22 System.out.println(str2); } } これまでに挙げてきた、文字列からDate型への変換、カレンダークラスにDate型の値を設定、日付の計算、カレンダークラスからDate型を取得、Date型から文字列への変換を組み合わせるとこんな事も可能です。 日付の比較(Date型同士) ideone after関数 // date1が、date2より後の日時であれば true if (date1.after(date2)) System.out.println("date1はdate2より後の日時です"); else System.out.println("date1はdate2と同じか前の日時です"); before関数 // date1が、date2より前の日時であれば true if (date1.before(date2)) System.out.println("date1はdate2より前の日時です"); else System.out.println("date1はdate2と同じか後の日時です"); after関数とbefore関数です、after関数は、基となるDateがパラメータのDateよりも後(after)であれば true が返ります。before関数はその逆です。管理人はあまり使いません。 compareTo関数 // date1 = date2なら0 if (date1.compareTo(date2) == 0) System.out.println("date1とdate2は同じ日時です"); // date1 date2ならマイナスの値 if (date1.compareTo(date2) 0) System.out.println("date1はdate2より前の日時です"); // date1 date2ならプラスの値が返却されます if (date1.compareTo(date2) 0) System.out.println("date1はdate2より後の日時です"); compareTo関数は、同じなら 0、date1 date2 ならマイナスの値、date1 date2 ならプラスの値が返ってきます。compareTo関数一つで同じか、過去か未来かを判断できる便利な関数ですが、管理人は過去と未来がどっちがどっちか分からなくなるのであまり使いません。 Date型が内部で扱うlong値を使った比較 if (date1.getTime() == date2.getTime()) System.out.println("date1とdate2は同じ日時です"); if (date1.getTime() date2.getTime()) System.out.println("date1はdate2より後の日時です"); if (date1.getTime() date2.getTime()) System.out.println("date1はdate2より前の日時です"); Date型は内部でlongを使って時刻を保持します。getTime関数でそのlong値を取得できるので、これを比較演算子(== != など)で比較する方法です。管理人はこの方法が見た目で過去未来をどのように判定しようとしているか分かりやすいのでよく使います。 文字列の日付が実際に存在する日付か確認する String str1 = "2013/11/31"; // 存在しない日付 // 変換クラスを作成 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); // 文字列をDate型に変換 Date date = sdf.parse(str1); // Date型から文字列に再変換 String str2 = sdf.format(date); // 再変換結果 2013/12/01 // 再変換した文字列と元の文字列で比較 if (str2.equals(str2)) System.out.println(str2 + "は、存在する日付です。"); else System.out.println(str2 + "は、存在しない日付です。"); SimpleDateFormatで存在しない日時を変換すると、実在する日時を越えた分だけ進めたDate型に変換されます。このDate型を文字列に戻すと、例えば「2013/11/31」は「2013/12/01」に変換されるので、変換前と返還後の文字列を比較して、同じであれば存在する日付、同じでなければ存在しない日付と判断できます。